<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class GoodsController extends BaseController
{
    //商品列表
    public function getIndex(Request $request)
    {
        //取出所有商品数据
        $data=DB::table('goods')
            ->join('pinpai',"goods.pp_id",'=','pinpai.pp_id')
            ->join('cate','goods.cate_id','=','cate.cate_id')
            ->join('goods_cate','goods.goods_id','=','goods_cate.goods_id')
            ->select('goods.*','pinpai.pp_name','cate.cate_name','goods_cate.cate_id')
//          ->paginate(1);
            ->get();
            $str_kz_id=$data[0]['cate_id'];

            $arr_kz_id=explode(',',$str_kz_id);
        $cate=array();
            foreach($arr_kz_id as $v){
                $cate[]=DB::table('cate')->where('cate_id',$v)->value('cate_name');
            }
       //将扩展分类拼接成字符串
        $str_kz_name=implode(',',$cate);
        $data[0]['cate_id']=$str_kz_name;
        return view('admin.goods.index',['data'=>$data,'request'=>$request]);
    }

    //显示添加页面
    public function getAdd()
    {
        //取出所有分类信息
        $dataCate=DB::table('cate')->get();
        $C_data=$this->getTree($dataCate);
        //取出所有品牌
        $P_data=DB::table('pinpai')->get();
        return view('admin.goods.add',compact('C_data','P_data'));
    }
    
    //执行添加方法
    public function postInsert(Request $request)
    {
        $data=$request->except('_token','cate_kz_id');

        //上传图片 返回上传图片的名字
        $pic_name=$this->UploadOneImage('goods_img','goods_img');
        $data['addtime']=time();
        $data['goods_img']=$pic_name;

        //插入数据 并返回插入数据的id
        $insertId=DB::table('goods')->insertGetId($data);
        if($insertId){
            //获得商品的扩展分类id
            $kuoCate_id =$request->input('cate_kz_id');
            $kuoCate=implode(',',$kuoCate_id);

            //扩展分类id是一个一维数组 分别遍历上传到数据库中
            $kz_data=array();
            $kz_data['goods_id']=$insertId;
            $kz_data['cate_id']=$kuoCate;

            $zz= DB::table('goods_cate')->insert($kz_data);
            if($zz){
                return redirect('admin/goods/index')->with('success','商品添加成功');
            }else{
                return back()->with('error','商品添加失败');
            }
        }else{

        }

    }

    //显示修改页面
    public function getEdit($id)
    {
        //取出所有分类信息
        $dataCate=DB::table('cate')->get();
        $C_data=$this->getTree($dataCate);
        //取出所有品牌
        $P_data=DB::table('pinpai')->get();
        //取出要修改的信息
        $data=DB::table('goods')->where('goods_id',$id)->first();

        return view('admin.goods.edit',compact('C_data','P_data','data'));
    }

    //执行修改方法
    public function postUpdata(Request $request,$id)
    {

       $data=$request->except('_token','cate_kz_id');
        //上传图片
        $pic_name=$this->UploadOneImage('goods_img','goods_img');
        $data['goods_img']=$pic_name;

        //修改商品表里的数据
       $z=DB::table('goods')->where('goods_id',$id)->update($data);
        if($z){
            //同时也要修改商品扩展分类里的数据
            $data_cate=array();
            $kz_cate=$request->input('cate_kz_id');
            $str_kz_cate=implode(',',$kz_cate);
            $data_cate['cate_id']=$str_kz_cate;
            //插入数据源
            $zz=DB::table('goods_cate')->where('goods_id',$id)->update($data_cate);
            if($zz){

                return redirect('admin/goods/index')->with('success','修改成功');
            }else{
                return back()->with('error','扩展分类修改失败');
            }

        }else{
            return back()->with('error','商品信息修改失败');
        }

    }

    //执行删除方法
    public function getDelete($id)
    {
        $z=DB::table('goods')->where('goods_id',$id)->delete();
        if($z){

            $data=[
              'status'=>0,
            ];
        }else{
            $data=[
                'status'=>1,
            ];

        }
        return $data;
    }
}
